
        <html>
			<head>
			     <title>警惕 云控广告“游戏盒子”死灰复燃 - 360安全卫士</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/9681">http://drops.wooyun.org/papers/9681</a></h1>
				
      <p>
        <p>近日,360互联网安全中心拦截了大量可疑流氓推广样本,这些样本伪装成游戏盒子,安装后接收云端指令,会强制下载推广软件,弹窗,修改主页,通过用户的电脑赚取大量的利益,本文将对此样本详细分析.</p>

<h1>0x00 概述</h1>

<hr />

<p>该木马通过下载站捆绑传播,安装后潜伏25分钟,25分钟后向服务器发送机器信息(系统版本,软件版本号等),收到指令后下载推广软件和刷流量软件,系统重启后静默安装同时启动刷流量的软件,占用系统大量资源和流量.总感染量达数千万.</p>

<h1>0x01 样本信息</h1>

<hr />

<p><img src="http://static.wooyun.org//drops/20151015/2015101508595277652129.png" alt="" /></p>

<!--more-->

<p>图 1 安装包</p>

<p>Setup11009.exe</p>

<p>文件大小: 362752 字节</p>

<p>MD5 e20ecf2a617ae0a063b49668a64577ec</p>

<p>安装包和程序都使用同一个签名</p>

<h1>0x02 行为分析</h1>

<hr />

<p>1) 安装后目录结构:</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101508595429243228.png" alt="" /></p>

<p>图 2 目录结构</p>

<p>2) 程序列表中:</p>

<p>程序名为 <code>gmbox Redistributable Package(kb20140526)</code> ,伪装成Windows补丁包程序</p>

<p>时间为真实安装时间的一年前</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101508595663952317.png" alt="" /></p>

<p>图 3 控制面板-卸载程序-显示</p>

<p>3) 开始菜单显示为 GXBox游戏</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101508595856632413.png" alt="" /></p>

<p>图 4 开始菜单</p>

<p>4) 托盘显示图标</p>

<p><img src="http://static.wooyun.org//drops/20151015/201510150900004760858.png" alt="" /></p>

<p>图 5 托盘图标</p>

<p>5) 打开后,伪装成游戏广告</p>

<p><img src="http://static.wooyun.org//drops/20151015/201510150900028185467.png" alt="" /></p>

<p>图 6 主界面</p>

<p>6) 添加服务,名称为GmXbox_update, dll路径指向安装目录下的gmbox.dll</p>

<p><img src="http://static.wooyun.org//drops/20151015/201510150900039971178.png" alt="" /></p>

<p>图 7 服务名称</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509000613139810.png" alt="" /></p>

<p>图 8 服务DLL路径</p>

<p>7) 在<code>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</code>添加启动项,参数为 -tray,每次启动不显示主界面,只有托盘图标</p>

<p><img src="http://static.wooyun.org//drops/20151015/201510150900081676599.png" alt="" /></p>

<p>图 9 启动项</p>

<p>8) 安装后25分钟,在临时目录下载了数个广告软件和安装程序</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509001073194108.png" alt="" /></p>

<p>图 10 下载安装包</p>

<p><img src="http://static.wooyun.org//drops/20151015/20151015090011662721112.png" alt="" /></p>

<p>图 11 临时目录中下载的安装包</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509024019836c1.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509024114646c2.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509024213862c3.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509024437253c4.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509024531110c5.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509024784907c6.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509025258033c7.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509025372737c8.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509025537510c9.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509025798380c10.png" alt="" /></p>

<p>其中</p>

<ol>
<li>ir56.exe 调用下载的广告程序安装包.</li>
<li>hw.dat 遍历安装程序,使其窗口隐藏.</li>
<li>ck.dat 刷网站流量.</li>
</ol>

<p>这3个程序的PE头被修改,防止被杀软查杀.</p>

<p><img src="http://static.wooyun.org//drops/20151015/20151015090013536491210.png" alt="" /></p>

<p>图 12 修改后的PE头</p>

<p>其他为广告软件安装程序.</p>

<p>系统重启后,广告程序全部都静默安装</p>

<h1>0x03 技术细节</h1>

<hr />

<h2>1) 安装过程：</h2>

<h3>A) 安装包使用NSIS打包</h3>

<p>首先,禁用常用程序的快速启动任务栏显示，为后面安装软件留位置</p>

<pre><code>WriteRegStr HKCR Applications\$_gmbox_.exe NoStartPage ""
WriteRegStr HKCR Applications\uninstall.exe NoStartPage ""
WriteRegStr HKCR Applications\uninstall.exe NoStartPage ""
WriteRegStr HKCR Applications\rsmain.exe NoStartPage ""
WriteRegStr HKCR Applications\360sd.exe NoStartPage ""
WriteRegStr HKCR Applications\rsagent.exe NoStartPage ""
WriteRegStr HKCR Applications\360safe.exe NoStartPage ""
WriteRegStr HKCR Applications\rsmctray.exe NoStartPage ""
WriteRegStr HKCR Applications\kav.exe NoStartPage ""
WriteRegStr HKCR Applications\rsstub.exe NoStartPage ""
WriteRegStr HKCR Applications\SHPlayer.exe NoStartPage ""
WriteRegStr HKCR Applications\wandoujia.exe NoStartPage ""
WriteRegStr HKCR Applications\wandoujia2.exe NoStartPage ""
WriteRegStr HKCR Applications\Uninst.exe NoStartPage ""
</code></pre>

<h3>B) 删除桌面和IE中的网址导航快捷方式</h3>

<pre><code>Delete $DESKTOP\*123*.lnk
Delete $DESKTOP\*123*.url
Delete $DESKTOP\*Int*.lnk
Delete $DESKTOP\*Int*.url
Delete $DESKTOP\*1nt*.lnk
Delete $DESKTOP\*1nt*.url
Delete $DESKTOP\*网址*.lnk
Delete $DESKTOP\*网址*.url
Delete $DESKTOP\*导航*.lnk
Delete $DESKTOP\*导航*.url    

Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*123*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*123*.url"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*Int*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*Int*.url"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*1nt*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*1nt*.url"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*网址*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*网址*.url"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*导航*.lnk"
Delete "$APPDATA\Microsoft\Internet Explorer\Quick Launch\*导航*.url"
Delete $INSTDIR\ad.dat
</code></pre>

<h3>C) 调用gmbox.dll的Install函数,安装服务</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509001845167138.png" alt="" /></p>

<p>图 13 安装脚本-调用gmbox.dll Install函数</p>

<h3>D) 修改安装时间为当前时间的前1年.</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509002327761148.png" alt="" /></p>

<p>图 14 安装脚本-修改安装时间</p>

<h2>2) 主程序 gmbox.exe</h2>

<h3>A) 发送客户信息数据包: 内容包括PID(用于识别客户端),推广渠道ID,版本号,当前时间</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509002722931158.png" alt="" /></p>

<p>图 15 数据包</p>

<h3>B) 加密后Post到 <code>http://sj.go2050.com/rcsj.ashx</code></h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509002886411167.png" alt="" /></p>

<p>图 16 post数据</p>

<h3>C) 注册云控命令处理函数,可以看到有获取操作系统版本,执行任务,打开URL,执行云控命令,读取注册表,获取和设置主页等功能.</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509003092557177.png" alt="" /></p>

<p>图 17 注册云控命令相应函数</p>

<h3>D) 其中doTask1函数中接收到URL然后下载文件到临时目录</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509003149504186.png" alt="" /></p>

<p>图 18 下载广告软件</p>

<h3>E) 获取广告软件指令单,id=11009猜测可能是渠道号</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509003396175196.png" alt="" /></p>

<p>图 19 获取指令单</p>

<p>其中带有-kboxsvc标记的(即ir56.exe)是安装软件.</p>

<h3>F) 下载完成后把ir56.exe路径加密后, 添加到gmbox安装目录下的gmbox.ini文件nrd字段</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509003451207207.png" alt="" /></p>

<p>图 20 加密后的ir56.exe路径</p>

<h2>3) 服务程序 gmbox.dll</h2>

<h3>A) SERVICE&#95;CONTROL&#95;SHUTDOWN事件响应函数:</h3>

<p>当系统关机时,函数执行,读取gmbox.ini中的nrd字段,即安装程序ir56.exe的路径,解密后设置RunOnce启动项.</p>

<p><img src="http://static.wooyun.org//drops/20151015/20151015090036402142110.png" alt="" /></p>

<p>图 21 设置ir56.exe启动项</p>

<h3>B) 遍历下载的文件,判断PE文件标志,如果是修改过的exe,则恢复MZ和PE标记</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509003926231229.png" alt="" /></p>

<p>图 22 还原PE文件</p>

<h3>C) 添加启动项,不显示主界面,只有托盘图标</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509004036597233.png" alt="" /></p>

<p>图 23 添加gmbox.exe启动项</p>

<h3>D) 添加系统服务</h3>

<p><img src="http://static.wooyun.org//drops/20151015/201510150900421078524_1.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20151015/201510150900444730024_2.png" alt="" /></p>

<p>图 24 创建gmbox update服务</p>

<h3>E) 判断是否有调试进程,没有则以 -g参数启动gmbox.exe,自动升级程序.</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509004591767253.png" alt="" /></p>

<p>图 25 遍历检测是否有指定进程</p>

<h3>F) 加密后的检测进程名称列表</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509004935262264.png" alt="" /></p>

<p>图 26 加密后的进程名称</p>

<h3>G) dll还可以向指定网站通过SOAP协议获取捆绑软件的数据,弹窗数据,统计活跃数据,采集主机的信息.记录安装和卸载的数据等</h3>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509005068633274.png" alt="" /></p>

<p>图 27 调用采集接口</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509005220410284.png" alt="" /></p>

<p>图 28 获取和采集数据接口说明</p>

<h1>0x04 意外发现</h1>

<hr />

<p>在软件获取最新版本号的地址 <code>http://dh.go2050.com/download/version.xml</code> 的上层目录中我们发现了anote(多彩便签)的安装包,下载后分析判定和gmbox高度相似.</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509005465039293.png" alt="" /></p>

<p>图 29 anote安装包下载</p>

<h2>1) 注册云控命令处理函数</h2>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509005890587302.png" alt="" /></p>

<p>图 30 gmbox注册云控命令处理函数</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509010043959318.png" alt="" /></p>

<p>图 31 anote注册云控命令处理函数</p>

<h2>2) 字符串加密函数</h2>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509010146309321.png" alt="" /></p>

<p>图 32 gmbox.dll 字符串加密函数</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509010533251332.png" alt="" /></p>

<p>图 33 anote.dll 字符串加密函数</p>

<h2>3) 加密的字符串表</h2>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509010941016341.png" alt="" /></p>

<p>图 34 gmbox.dll 加密的字符串表</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509011134904351.png" alt="" /></p>

<p>图 35 anote.dll 加密的字符串表</p>

<p>这个字符串列表被_UnInstall函数引用,用于判断是用户手动卸载还是第三方管理软件卸载,并把结果发送到服务器做统计.</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509011367061361.png" alt="" /></p>

<p>图 36 判断是否是用户手动卸载</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509011940928371.png" alt="" /></p>

<p>图 37 构建发送字符串</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509012340839381.png" alt="" /></p>

<p>图 38 发送统计数据</p>

<p><img src="http://static.wooyun.org//drops/20151015/2015101509013037821391.png" alt="" /></p>

<p>图 39 安装拦截</p>

<p><strong>总结: 通过分析我们发现,该木马添加了系统服务,启动后过一段时间才触发行为,下载的安装程序去除了PE特征,以此逃过杀软扫描,系统关机时恢复PE文件,重启后安装推广软件,潜伏性、隐蔽性较强,中招之后较难发现,建议用户安装专业的安全软件,养成良好的上网习惯,从正规下载网站或者软件管家下载软件,不要运行来历不明的软件.安装软件时注意取消默认勾选的捆绑软件.</strong></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          